//********************************************************************************************************************//
//ORGANIZATION:
//AUTHOR: bpeng(bogers.peng@gmail.com)
//SUMMARY:
//********************************************************************************************************************//
#ifndef NATIVE_SYSTEM_BASE_TOSTRING_H
#define NATIVE_SYSTEM_BASE_TOSTRING_H

#ifndef NATIVE_SYSTEM_BASE_OBJECT_H
#include "System/Base/Object.h"
#endif

namespace Native { namespace System
{
    struct NATIVE_LIBRARY_EXPORT UToString
    {
        template<typename _TNumeric>
        inline static wstring FromDecimal(_TNumeric numeric)
        {
            return UNumeric::ToString(numeric, BASE_DECIMAL);
        };

        template<typename _TNumeric>
        inline static wstring FromHexadecimal(_TNumeric numeric)
        {
            return UNumeric::ToString(numeric, BASE_HEXADECIMAL);
        };

        inline static wstring FromWString(WSTRING& string)
        {
            return wstring(string.c_str());
        };

        inline static wstring FromObject(C_OBJECT& object)
        {
            return object.ToString();
        };
    };
}}

#endif